#include "file.h"
#include <iostream>

int read_lines(const std::string path, std::vector<std::string>& lines)
{
    // 创建一个 ifstream 对象
    std::ifstream infile(path);

    // 检查文件是否成功打开
    if (!infile.is_open()) {
        std::cerr << "Failed to open file for reading: " << path << std::endl;
        return -1;
    }

    // 从文件中读取数据
    std::string line;
    while (std::getline(infile, line)) {
        lines.push_back(line);
    }

    // 关闭文件
    infile.close();
    return lines.size();
}
int write_file(const std::string path, const std::string &&str)
{
    // 创建一个 fstream 对象
    std::fstream file(path, std::ios::out);

    // 检查文件是否成功打开
    if (!file.is_open()) {
        std::cerr << "Failed to open file for reading and writing: " << path << std::endl;
        return -1;
    }

    // 写入数据到文件
    file << str << std::endl;

    // 将文件指针重新定位到文件开头
    file.seekg(0);

    // 关闭文件
    file.close();
    return str.length();
}

int append_file(const std::string path, const std::string &&str)
{
    // 创建一个 fstream 对象
    std::fstream file(path, std::ios::app);

    // 检查文件是否成功打开
    if (!file.is_open()) {
        std::cerr << "Failed to open file for reading and writing: " << path << std::endl;
        return -1;
    }

    // 写入数据到文件
    file << str << std::endl;

    // 关闭文件
    file.close();
    return str.length();
}

// int main(int argc, char const *argv[])
// {
//     write_file("test.txt", "123456");
//     append_file("test.txt", "789");
//     write_file("test.txt", "3为1");
//     std::vector<std::string> lines;
//     read_lines("test.txt", lines);
//     for(auto& item: lines)
//     {
//         std::cout << item << std::endl;
//     }
//     return 0;
// }
